﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace ProjetoFinal
{
    //como colocar .GIF no XNA - Fábio ou pesquisa - JEAAN!

    class Menu
    {
        #region Variaveis
        Texture2D telaMenu, botaoMenu;
        Vector2[,] opcaoMenu;
        Vector2 posicaoBotao;

        public Menu()
        {
            
        }

        SpriteFont Arial;
        #endregion

        public void Initialize()
        {
            opcaoMenu = new Vector2[3, 3];
            opcaoMenu[0, 0] = new Vector2(500, 180);
            opcaoMenu[1, 1] = new Vector2(500, 290);
            opcaoMenu[2, 2] = new Vector2(500, 400);
          
            posicaoBotao = opcaoMenu[0, 0];
            
        }


        public void LoadContent(ContentManager content)
        {
            telaMenu = content.Load<Texture2D>("telamenu");
            botaoMenu = content.Load<Texture2D>("botaomacaco");
            Arial = content.Load<SpriteFont>("Arial");
        }


        public void Update(GameTime gameTime, KeyboardState tecladoAtual, KeyboardState tecladoAnterior)
        {

            //MOVIMENTO DO MACAQUINHO QUE SELECIONA AS OPÇÕES DO MENU
            if ((tecladoAtual.IsKeyDown(Keys.Down) && !tecladoAnterior.IsKeyDown(Keys.Down)) || (tecladoAtual.IsKeyDown(Keys.Up) && !tecladoAnterior.IsKeyDown(Keys.Up)))
             {
                 if (posicaoBotao == (opcaoMenu[0, 0])) 
                 {
                     if (tecladoAtual.IsKeyDown(Keys.Down))
                         posicaoBotao = opcaoMenu[1, 1]; // muda de posicão para baixo
                     if (tecladoAtual.IsKeyDown(Keys.Up))
                         posicaoBotao = opcaoMenu[2, 2]; // muda de posicão para CIMA
                 }

                 else if (posicaoBotao == (opcaoMenu[1, 1]))
                 {
                     if (tecladoAtual.IsKeyDown(Keys.Down))
                        posicaoBotao = opcaoMenu[2, 2];
                     if (tecladoAtual.IsKeyDown(Keys.Up))
                         posicaoBotao = opcaoMenu[0, 0]; 
                 }

                 else if (posicaoBotao == (opcaoMenu[2, 2]))
                 {
                     if (tecladoAtual.IsKeyDown(Keys.Down))
                        posicaoBotao = opcaoMenu[0, 0];
                     if (tecladoAtual.IsKeyDown(Keys.Up))
                         posicaoBotao = opcaoMenu[1, 1]; 

                 }
             }

            //CONFERE SE ALGUMA OPÇÃO DO MENU FOI SELECIONADA 
            if (posicaoBotao == opcaoMenu[1, 1] && tecladoAtual.IsKeyDown(Keys.Space) && !tecladoAnterior.IsKeyDown(Keys.Space))
             {
                 Manager.estadoAtual = Manager.estadosJogo.Creditos;
             }
            else if (posicaoBotao == opcaoMenu[2, 2] && tecladoAtual.IsKeyDown(Keys.Space) && !tecladoAnterior.IsKeyDown(Keys.Space))
             {
                 Manager.estadoAtual = Manager.estadosJogo.Sair;
             }
            else if (posicaoBotao == opcaoMenu[0, 0] && tecladoAtual.IsKeyDown(Keys.Space) && !tecladoAnterior.IsKeyDown(Keys.Space))
             {
                 Manager.estadoAtual = Manager.estadosJogo.Jogo;
             }

            tecladoAnterior = tecladoAtual;
            
        }


        public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            spriteBatch.Begin();
            spriteBatch.Draw(telaMenu, new Vector2(0, 0), Color.White);
            spriteBatch.Draw(botaoMenu, posicaoBotao, Color.White);

            spriteBatch.End();

        }


    }
}
